package map;

import java.util.HashMap;
import java.util.Map;

/**
 * Map接口:
 * 1.所有双列集合的顶级接口，规定了所有双列集合的共有功能
 * 2.Map体现的结构是一个多行两列的表格，其中左列称为key键，右列称为value值.
 *   Map总是成对保存数据，每一对称为一个"Entry"条目，并且总是根据key获取对应的value。
 * 3.Map要求:key不允许重复，但value可以重复----重复与否的判断依据为equals()+hashCode()
 * 4.常用实现类:
 *   1)HashMap:不重复、无下标、无序(存取顺序不一致)
 *   2)LinkedHashMap:不重复、无下标、有序(存取顺序一致)
 */
public class MapDemo01 {
    public static void main(String[] args) {
        Map map = new HashMap();
        map.put("数学",98);
        map.put("英语",94);
        map.put("数学",78);// key 值是不可重复，是对原先的替换
        map.put("化学",94);
        map.put(89,89);

        System.out.println(map);
        int num = (int) map.get("化学");// 没有泛型 所以是object 需要强转
        System.out.println(num);

        System.out.println("--------");
        Integer value = (Integer) map.put("数学",50); //替换操作
        System.out.println(value); //"物理"原来对应的值:96
        System.out.println(map); //{数学=50, 化学=94, 英语=94}
        value = (Integer) map.put("政治",99);
        System.out.println(value); //若不是替换操作则返回null
        System.out.println(map); //{政治=99, 数学=50, 化学=94, 英语=94}

    }
}
